Fonts are digital files or code that represent instances of digital typefaces. Examples of typefaces include Arial, Courier, Helvetica, and Times New Roman. An example of a font is a digital file (e.g., “Helvetica.otf”) that represents a style of a typeface, such as Helvetica. A given font or family of fonts can have options for different point sizes, various effects such as bold or italics, and so forth. Every font provides a number of glyphs that are visual representations of abstract characters. As an example, the letter “a” is an abstract character which can be visually represented in any number of ways through different glyphs of the letter “a”.
Storage of electronic text as glyphs of a particular font results in large file sizes with little flexibility or compatibility between different applications or devices. Accordingly, electronic text is typically stored as characters rather than glyphs and is independent of any particular font. A font allows a computing application to translate electronic text from characters into glyphs for display within an application. For example, a web browser of a smart phone can display text from a web page using a font stored locally on the smart phone, while a web browser of a desktop computer can display text from the same web page using a font stored locally on the desktop computer.
A variety of fonts have been created to accommodate the diversity of stylistic preferences of people around the world. The variety of fonts, for instance, enable people of different languages and cultures to enjoy electronic text in their own way. For example, a restaurant specializing in middle eastern cuisine may want to create menus that appear Arabic despite having English speaking customers. The font “Faux Arabic Regular” can fill this need, as it presents Latin characters with glyphs that capture the style and “feel” of Arabic calligraphic script while remaining legible in the English language. Further, a designer of wedding invitations might want text to appear “fancy and elegant” and utilize the font “Palace Script MT,” while a designer of children's books might want text to appear “fun” and utilize the font “Jokerman.” Thus, a user may select a font based on their individual stylistic preferences.
A single font, however, may by itself also allow for a diverse range of stylistic preferences. For instance, the single font may include more glyphs than characters, such as by including multiple alternative glyphs to represent the same character or including ligature glyphs that may represent multiple characters with a single glyph. To accommodate this, a definition of a font may include not only an explanation of how individual characters are formed, but also an explanation of how each character relates to or interacts with other characters based on the chosen glyphs. However, it is common for a font to contain glyphs which are only accessible when manually selected by a user from a list of the glyphs. As an example, a font may include a glyph for the Greek character Omega yet the English keyboard does not include an input for Omega, or a font may include five glyphs for a single letter but by default only uses the first of these five glyphs. To select the Omega glyph or any of the four alternate glyphs for the letter, a user must search through every single glyph within the font and locate the desired glyph. Further, glyphs may be listed in no particular order and similar glyphs are often not grouped together. Accordingly, a search for five different glyphs of the same letter may entail searching for five completely different locations within a list of glyphs. As there may be an immense number of glyphs within a font, this process may take an extended period of time and be considered tedious. As another example, a user may be searching for a glyph of the Greek letter “Omega” but does not know that the glyph's exact name is “Greek Capital Letter Omega.” Using traditional methods, merely knowing that the glyph is for “Omega” is insufficient to locate the glyph, and the user must manually search through every single glyph within the font until they have visually located the desired glyph. Accordingly, it can be difficult, inconvenient, and time-consuming to locate a particular glyph within a font.